home *** CD-ROM | disk | FTP | other *** search
- #
- # Model of airplane
- #
-
- #create the body of airplane
- cbody = cbspline(3, list(
- ctlpt(E3,0.0000, 0.0, -1.160000 ),
- ctlpt(E3,0.284 , 0.0, -1.160000),
- ctlpt(E3, 0.524, 0.0, -0.764000),
- ctlpt(E3, 0.568, 0.0, -0.436000),
- ctlpt(E3, 0.524, 0.0, -0.012000),
- ctlpt(E3, 0.452, 0.0, 0.26000),
- ctlpt(E3, 0.356, 0.0, 0.492000),
- ctlpt(E3, 0.236, 0.0, 0.640000),
- ctlpt(E3, 0.0, 0.0, 0.640000)),
- list(0,0,0,3,4,5,6,7,8,11,11,11) );
- body = surfrev(cbody);
-
- #create the sections of wing
- wingsec1 = cbspline(4, list(
- ctlpt(E3, 0.0, 0.0, 0.2),
- ctlpt(E3, 0.007, 0.0, 0.2),
- ctlpt(E3, 0.01, 0.0, 0.01),
- ctlpt(E3, 0.07, 0.0, -0.2),
- ctlpt(E3, 0.0, 0.0, -0.2),
- ctlpt(E3, -0.07, 0.0, -0.2),
- ctlpt(E3, -0.01, 0.0, 0.01),
- ctlpt(E3, -0.007, 0.0, 0.2),
- ctlpt(E3, 0.0, 0.0, 0.2)),
- list(0,0,0,0,2,3,4,5,6,7,7,7,7));
- wingsec2 = wingsec1 * scale(vector(0.2,0.2,0.2))*
- trans(vector(0.0,0.65,0.0));
- wingsec3 = wingsec1*scale(vector(0.207,0.207,0.207)) *trans(vector(0.0,0.675,0.0));
- wingsec4 = wingsec3 * scale(vector(0.0,0.0,0.5)) *trans(vector(0.0,0.68,0.0));
-
- #create the wing as surface on the sections
- wing = sfromcrvs(list(wingsec1,wingsec2,wingsec3,wingsec4),4);
-
- #create the two wings and tail
- rightwing = wing * scale(vector(2.,2.,2))*
- trans(vector(0.0,0.45,-0.2));
- leftwing = rightwing*rotz(180);
-
- tail = rightwing * roty(180)*scale(vector(1.5,0.5,0.6))* rotz(90) *
- roty(10)*trans(vector(-0.1,0.0,0.15));
-
-
- # create the propeller
-
- s = sphere(vector(0.0,0.0,0.0),0.1);
- blade = sfromcrvs ( list(
- cbezier(list( ctlpt(E3, 0.0, -0.07, 0.0),
- ctlpt(E3, 0.0, 0.07, 0.0))),
- cbezier(list( ctlpt(E3, 0.4, -0.18, 0.0),
- ctlpt(E3, 0.4, 0.18, 0.0))),
- cbezier(list( ctlpt(E3, 0.5, -0.13, 0.0),
- ctlpt(E3, 0.5, 0.13, 0.0))),
- cbezier(list( ctlpt(E3, 0.6, -0.05, 0.0),
- ctlpt(E3, 0.6, 0.05, 0.0))),
- cbezier(list( ctlpt(E3, 0.6, 0.0, 0.0),
- ctlpt(E3, 0.6, 0.0, 0.0)))), 5);
- bld = blade * rotx(180);
- bl1 = blade * trans(vector(0.0,0.0,0.005));
- bl2 = bld * trans(vector(0.0,0.0, -0.005));
-
- crossaxis = cmesh(blade,COL,0);
- cov1 = sweepsrf(cbezier(list( ctlpt(E3, 0.0, -0.005, 0.0),
- ctlpt(E3, 0.0, 0.005, 0.0))),
- crossaxis,OFF);
- cov = cov1 + cov1*rotx(180);
- blade = bl1 + bl2 + cov;
-
- #create the four blades of propeller
- blade1 = blade * rotx(15) * trans(vector(0.03,0.0,0.0));
- blade2 = blade1 * rotz(90);
- blade3 = blade2 * rotz(90);
- blade4 = blade3 * rotz(90);
- propeller = list(s,blade2,blade4,blade3,blade1);
- propeller = propeller * trans(vector(0.0,0.0,-1.18));
- color(propeller,RED);
-
-
- #create the ladinggear
- a1 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02),
- cbezier(list(ctlpt(E3, 0.0, -0.4, 0.0),
- ctlpt(E3, 0.0, 0.4, 0.0))),OFF);
-
- a2 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02),
- cbezier( list (ctlpt(E3, -0.15, 0.0, 0.0),
- ctlpt(E3, 0.0, 0.0, 0.0) ) ),OFF);
- axis = a1+a2;
- landgear = list(axis,
- torus(vector(0.0, -0.37, 0.0),vector(0.0,-1.0,0.0),0.06,0.04),
- torus(vector(0.0, 0.37, 0.0),vector(0.0, 1.0, 0.0),0.06,0.04));
- color(landgear,BLUE);
- landgear1 = landgear * trans(vector(0.57,0.0,-0.9));
- landgear2 = landgear * trans(vector(0.45,0.0, 0.4));
-
-
- # base of airplane
- base = list(body,leftwing,rightwing,tail);
- color(base,GREEN);
-
-
- airplane = list(base,landgear1,landgear2,propeller);
-
-
- interact(airplane);
- #save("airplane",airplane);
-
-